home *** CD-ROM | disk | FTP | other *** search
/ Aminet 52 / Aminet 52 (2002)(GTI - Schatztruhe)[!][Dec 2002].iso / Aminet / misc / emu / Apex-src.lha / XGET.XPL < prev    next >
Text File  |  2001-09-30  |  1KB  |  71 lines

  1. \XGET.XPL    DEC-05-89
  2. \Program to get either a text or binary file using the XMODEM device.
  3.  
  4. \REVISION HISTORY:
  5. \FEB-24-86, V1.0, Original.
  6. \MAR-14-86, Modified to strip out (damn) linefeeds (nip 'em in the bud).
  7. \APR-10-87, Changed string termination.
  8. \APR-24-89, Minor mods.
  9. \DEC-05-89, V2.0, Add option to get binary files.
  10.  
  11. code    CHIN=7,        CHOUT=8,    CRLF=9,        TEXT=12,
  12.     OPENI=13,    OPENO=14,    CLOSE=15;
  13.  
  14. def    LF=$0A, EOF=$1A;
  15.  
  16.  
  17.  
  18. proc    GETBIN;        \Get binary file
  19. int    CH, I;
  20. addr    EOTFLG;
  21. begin
  22. EOTFLG:= $06A0;        \Location in SYSPAG
  23.  
  24. TEXT(0, "GETTING...");
  25.  
  26. OPENI(5);
  27. OPENO(3);
  28. I:= 0;
  29. loop    begin
  30.     CH:= CHIN(5);
  31.     if EOTFLG(0) then quit;
  32.     CHOUT(3, CH);
  33.     I:= I +1;    \Display a dot for each block received
  34.     if I & $00FF then else CHOUT(0, ^.);
  35.     end;
  36. OPENI(5);        \Send ACK to tell sender we're all done
  37. CLOSE(3);
  38. end;    \GETBIN
  39.  
  40.  
  41.  
  42. proc    GETTEXT;    \Get text file
  43. int    CH;
  44. begin
  45. OPENI(5);
  46. OPENO(3);
  47. loop    begin
  48.     repeat CH:= CHIN(5) until CH #LF;    \Remove line feeds
  49.     if CH =EOF then quit;
  50.     CHOUT(3, CH);
  51.     CHOUT(0, CH);
  52.     end;
  53. OPENI(5);        \Send ACK to tell sender we're all done
  54. CLOSE(3);
  55. end;    \GETTEXT
  56.  
  57.  
  58.  
  59. begin    \MAIN
  60. TEXT(0, "-- XMODEM FILE GETTER, V2.0 --
  61.  
  62. GET TEXT OR BINARY FILE (T/B)? ");
  63.  
  64. if (CHIN(0)!$20) =^b then GETBIN else GETTEXT;
  65. end;    \MAIN
  66. ODEM FILE GETTER, V2.0 --
  67.  
  68. GET TEXT OR BINARY FILE (T/B)? ");
  69.  
  70. if (CHIN(0)!$20) =^b then GETBIN else GETTEXT;
  71. end;